//////////////////////////////////////////////////////////////////////////

#ifndef _PLAYERSINFO_H_
#define _PLAYERSINFO_H_

//////////////////////////////////////////////////////////////////////////

#include <map>
#include <string>

//////////////////////////////////////////////////////////////////////////


/** Class saves info about all players
*
*  @author   Anastasia Karpinska
*  @since    Jun 08th, 2010
*  @updated  Jun 08th, 2010
*/
struct PlayersInfo
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////
    
    
    /** Player's info */
    struct Info
    {
        std::string m_Name;
        int m_Kills;
        int m_Dies;
    };


    /** Add player */
    void AddPlayer( int _id, const std::string& _name, int _kills = 0, int _dies = 0 )
    {
        m_Info[_id].m_Name = _name;
        m_Info[_id].m_Kills = _kills;
        m_Info[_id].m_Dies = _dies;
    }


    /** Deletes player */
    void DeletePlayer( int _id ) { m_Info.erase(_id); }

   
    /** Returns name */
    const std::string& GetName( int _id ) { return m_Info[_id].m_Name; }


    /** Returns kills */
    int GetKills( int _id ) { return m_Info[_id].m_Kills; }


    /** Returns dies */
    int GetDies( int _id ) { return m_Info[_id].m_Dies; }


    /** Type for players info */
    typedef std::map<int, Info> InfoMap;


    /** Clients info */
    InfoMap m_Info;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
